package com.yunzhu.yunzhubookingservice.exception;

/**
 * 开发规范
 * 程序异常应该在Controller，Service，DAO层被翻译成自定义异常，并及时抛出，不允许将异常私自截留
 * 统一数据响应代码，使用httpStatusCode,不要自定义，比便于记忆。200表请求成功，400表用户输入导致异常，500表系统内部异常，999表未知异常
 * 自定义异常中有message属性，一定用友好的语言描述异常，并赋值给message
 * 不允许对父类Exception统一catch，要分小类catch，这样能够清楚的将异常转换为自定义异常并传输给前端。
 *
 * 异常分类的枚举，把异常分类固化下来
 */
public enum CustomExceptionType {
    USER_INPUT_ERROR(400,"用户数据异常"),
    SYSTEM_ERROR(500,"系统服务异常"),
    OTHER_ERROR(999,"其他未知异常");

    private int code;
    private String typeDesc;//异常类型中文描述

    CustomExceptionType(int code,String typeDesc){
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public String getTypeDesc() {
        return typeDesc;
    }
}
